#include<stdio.h>

int m;//计数

void hanoi(int n, char x, char y, char z);

void hanoi(int n, char x, char y, char z)
{
	if(n == 1)
	{
		printf("%c --> %c\n", x, z);//结束条件
		m++;
	}
	else
	{
		hanoi(n-1, x, z, y);//将n-1个盘从x借助z,移动到y
		printf("%c --> %c\n", x, z);
		hanoi(n-1, y, x, z);//将n-1个盘从y借助x,移动到z
		m++;
	}
}

int main(void)
{
	int n;
	printf("请输入汉诺塔层数:");
	scanf("%d",&n);

	hanoi(n, 'X', 'Y', 'Z');

	printf("变换%d次\n",m);
	return 0;
}
